#ifndef ARRAY_H_
#define ARRAY_H_

#include <stdlib.h>

#define DATA_TYPE t_double

typedef union unionType {
	char t_char;
	unsigned char t_byte;
	int t_int;
	unsigned int t_uint32;
	long int t_int64;
	short int t_int16;
	unsigned long int t_uint64;
	unsigned short int t_uint16;
	float t_float;
	double t_double;
	long double t_ldouble;
} dataType;

typedef struct structDoubleArray {
	double *array;
	long int size;
} doubleArray;

typedef struct structDouble2DArray {
	doubleArray **matrix;
	long int size;
} double2DArray;

doubleArray *createDoubleArray(long int size);

double2DArray *createDouble2DArray(long int width, long int height);

long int getWidthDoubleArray(doubleArray *dArray);

long int getWidthDouble2DArray(double2DArray *d2DArray);

long int getHeightDouble2DArray(double2DArray *d2DArray);

void setValueDouble2DArray(double2DArray *d2DArray, long int col, long int line, double value);

#endif /*ARRAY_H_*/
